#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMap>
#include "opencv2/opencv.hpp"//OpenCV文件包含
#include <opencv2/opencv.hpp>
#include <opencv2/face.hpp>

#include <vector>            //包含向量类动态数组功能
using namespace cv;          //OpenCV命名空间
using namespace std;         //使用vector必须

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    struct myKeyValue{
        int key;
        QString value;
    };

private slots:
    void on_detectPushButton_clicked();
    void on_detectPushButton_train_clicked();
    void on_detectPushButton_test_clicked();

    void on_pushButton_imgCSV_clicked();

private:
    Ui::MainWindow *ui;
    void imgShowGray(const Mat &img); //显示图片
    void imgShowRGB(const Mat &img); //显示图片
    // 用户选择的路径
    QString selectedFolder;
    // 图片路径和id
    QVector<myKeyValue> img_IDPathList;
    //QMap<int,QString> img_IDPathList;

    int count = 0;

    vector<Mat> images;
    vector<int> labels;
    Ptr<cv::face::BasicFaceRecognizer> model;

};

#endif // MAINWINDOW_H
